﻿/*
集合A-B 
Time Limit:1000MS  Memory Limit:32768K


Description:
这个A-B求的是两个集合的差，就是做集合的减法运算。
（当然，大家都知道集合的定义，就是同一个集合中不会有两个相同的元素，这里还是提醒大家一下） 

Input:
每组输入数据占1行,每行数据的开始是2个整数n(0<n<=100)和m(0<m<=100),分别表示集合A和集合B的元素个数，
然后紧跟着n+m个元素，前面n个元素属于集合A，其余的属于集合B. 
每个元素为不超出int范围的整数,元素之间有一个空格隔开. 
如果n=0并且m=0表示输入的结束，不做处理。 
Output:
针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合，则输出“NULL”,否则从小到大输出结果,每个元素之间空一格. 
Sample Input:
3 3 1 2 3 1 4 7
3 7 2 5 8 2 3 4 5 6 7 8 
0 0
Sample Output:
2 3 
NULL
*/
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;

int main()
{
	for (unsigned n, m; cin>>n>>m && (n && m);)
	{
		vector<int> a, b;

		int num;
		for (a.reserve(n);n--; a.push_back(num))
			cin>>num;

		for (b.reserve(m);m--; b.push_back(num))	
			cin>>num;
		
		sort(a.begin(), a.end());
		sort(b.begin(), b.end());		
		vector<int>::iterator end=set_difference(a.begin(), a.end(), b.begin(), b.end(), a.begin());
		if(end==a.begin())
			cout<<"NULL"<<endl;
		else
		{
			unique(a.begin(), end);			
			copy(a.begin(), end-1, ostream_iterator<int>(cout, " "));			
			cout<<*(end-1)<<endl;
		}
	}

	
	return 0;
}//~